package com.echat.companydata.tool;

/**
 * Created by chenmohan on 2018/09/21
 *
 * @description
 */
public class RedisKey {

    public static final String keySplit = "_";//分隔符

    private static final String CHAT_KEYS_PREFIX = "chat_";
    public static final String chatProfileKeysPrefix = "chatprofile_";//未避免出现重复的key每个应用在使用key的时候将其应用名作为前缀使用
    /**
     * 记录当前公司的访客列表消息  key:visitorId:value:VisitorInfoMsg
     */
    public static final String COMPANY_VISITOR_MAP = "companyVisitorMap_";

    /**
     * 公司对话列表（已开始和未开始的对话） hash存储 key:visitorId:value: ChatInfoMsg
     */
    public static final String companyChatMap = "companyChatMap_";

    /**
     *客服在线状态维护，用来判断当前公司是否有客服在线，同时修改公司的在线状态
     */
    public static final String staffStatus = "staffStatus_";

    /**
     * 在此hash下保存公司状态的键值
     */
    public static final String companyStatus = "companyStatus";

    /**
     * 按天保存某个客户每一天的访客数量信息，没产生一个访客 一个对话 一个留言 一个客户信息 对其进行数字递增操作  第二天对其进行保存操作
     * hash结构
     * key:count指标 详见DailyCountKey value:count数量 为空则表示为0
     */
    public static final String companyDailyData = "companyDailyData";

    public static String companyVisitorMapKey(long companyId) {
        return new StringBuffer().append(CHAT_KEYS_PREFIX).append(COMPANY_VISITOR_MAP).append(companyId).toString();
    }

    public static String companyChatMapKey(long companyId) {
        return new StringBuffer().append(CHAT_KEYS_PREFIX).append(companyChatMap).append(companyId).toString();
    }

    public static String staffStatusKey(long companyId) {
        return new StringBuffer().append(CHAT_KEYS_PREFIX).append(staffStatus).append(companyId).toString();
    }

    public static String companyDailyDataKey(long companyId, String date) {
        return new StringBuffer(CHAT_KEYS_PREFIX).append(companyDailyData).append(keySplit).append(companyId).append(keySplit).append(date).toString();
    }



    /**
     * 每日统计数量报表 指标
     */
    public static interface DailyCountKey {
        public static final String maxLogins = "maxLogins";//最大登陆客服数量
        public static final String staffLogins = "staffLogins";//当日登陆的客服去重数量
        public static final String vCount = "vCount";//来访访客数量
        public static final String svCount = "svCount";//搜索来访访客数量
        public static final String newvCount = "newvCount";//新访客数量
        public static final String newsvCount = "newsvCount";//新搜索来访访客数量
        public static final String vCountNologin = "vCountNologin";//离线访客数量
        public static final String svCountNologin = "svCountNologin";//离线访客搜索来源数量
        public static final String newvCountNologin = "newvCountNologin";//新访客来访数量（客服离线）
        public static final String newsvCountNologin = "newsvCountNologin";//搜索来源新访客数量（客服离线）
        public static final String cCount = "cCount";//产生对话数量
        public static final String scCount = "scCount";//搜索对话数量
        public static final String newcCount = "newcCount";//新访客对话数量
        public static final String newscCount = "newscCount";//新访客搜索对话数量
        public static final String bCount = "bCount";//日当预约数量
        public static final String sbCount = "sbCount";//搜索来源预约数量
        public static final String newbCount = "newbCount";//新访客预约数量
        public static final String newsbCount = "newsbCount";//新访客搜索预约数量
        public static final String crmCount = "crmCount";//当日客户信息创建数量
        public static final String lCount = "lCount";//留言数量(总量）
        public static final String slCount = "slCount";//索搜留言数量
        public static final String lCountNologin = "lCountNologin";//线离留言数量
        public static final String slCountNologin = "slCountNologin";//搜索留言数量-客服离线
        public static final String clCount = "clCount";//访客点击对话图标数量
        public static final String sclCount = "sclCount";//搜索来源点击对话图标数量
        public static final String newclCount = "newclCount";//新访客点击对话图标数量
        public static final String newsclCount = "newsclCount";//新访客搜索来源点击对话图标数量
        public static final String clCountNologin = "clCountNologin";//访客离线点击数量
        public static final String sclCountNologin = "sclCountNologin";//搜索来源访客点击数量（客服离线）
        public static final String newclCountNologin = "newclCountNologin";//访客新点击数量（客服离线）
        public static final String newsclCountNologin = "newsclCountNologin";//新访客搜索来源点击数量（客服离线）
    }
}
